package root.historic.componenteLog;

import java.util.GregorianCalendar;

import root.historic.componenteLog.Amizade;

public class Amizade implements ComponenteLog{
	
	private String nomeAmigo1;
	private String nomeAmigo2;
	private GregorianCalendar dataCriacao;
	
	public Amizade(String amigo1, String amigo2) {
		
		this.nomeAmigo1 = amigo1;
		this.nomeAmigo2 = amigo2;
		dataCriacao = new GregorianCalendar();
	}
	
	@Override
	public String toString(){
		return String.format("%s e %s são amigos agora", nomeAmigo1,nomeAmigo2);
	}
	
	@Override
	public boolean equals(Object o){
		if(!(o instanceof Amizade)) return false;
		Amizade amizade = (Amizade) o;
		return (nomeAmigo1.equals(amizade.nomeAmigo1) && nomeAmigo2.equals(amizade.nomeAmigo2)) || (nomeAmigo1.equals(amizade.nomeAmigo2) && nomeAmigo2.equals(amizade.nomeAmigo1));
	}

	@Override
	public GregorianCalendar getDataCriacao() {
		return dataCriacao;
	}
	/**
	 * O compare to compara a partir da data de criação 
	 */
	@Override
	public int compareTo(ComponenteLog arg0) {
		if(equals(arg0)) return 0;
		if(arg0.getDataCriacao().compareTo(dataCriacao) == 0) return 1;
		return arg0.getDataCriacao().compareTo(dataCriacao);
	}
	
	@Override
	public int hashCode() {
		return nomeAmigo1.concat(nomeAmigo2).hashCode();
	}
}
